Добавить поддержку клавиш W, A, S, D клавиатуры легко в MV и MZ.
Для этого достаточно добавить в проект такой код:
Здесь мы также "перекинули" стандартный функционал клавиши W на E.Код:(function () { var replacedKeyMapper = { 87: 'up', 65: 'left', 83: 'down', 68: 'right', 69: 'pagedown', }; for (i in replacedKeyMapper) { Input.keyMapper[i] = replacedKeyMapper[i]; } })();
Вы можете скачать файл тут и добавить его в проект, как плагин.
У каждой клавиши есть числовой код. Представим, что в движке они помечаются маркерами. Например, стрелка вверх помечена маркером 'up'. Если игрок нажимает на эту стрелку, движок видит срабатывание маркера 'up' и обрабатывает это событие.
Маркеры задаются через словарь. Эта структура данных состоит из пар ключ-значение. Здесь ключ - числовой код клавиши, а значение - маркер. Все ключи уникальные, они не могут повторятся. Значения - могут.
Таким образом, несколько клавиш могут быть помечены одинаковым маркером. Это позволяет нам одновременно поддерживать движение как по стрелкам, так и по WASD.
При желании, вы можете добавлять свои пары ключ-значение в объект replacedKeyMapper из кода выше.
Вот код из файла движка rmmz_core.js:
Здесь вы можете увидеть все доступные по умолчанию маркеры. Это полезно знать, если вы хотите добавить какой-то клавише маркер.Код:Input.keyMapper = { 9: "tab", // tab 13: "ok", // enter 16: "shift", // shift 17: "control", // control 18: "control", // alt 27: "escape", // escape 32: "ok", // space 33: "pageup", // pageup 34: "pagedown", // pagedown 37: "left", // left arrow 38: "up", // up arrow 39: "right", // right arrow 40: "down", // down arrow 45: "escape", // insert 81: "pageup", // Q 87: "pagedown", // W 88: "escape", // X 90: "ok", // Z 96: "escape", // numpad 0 98: "down", // numpad 2 100: "left", // numpad 4 102: "right", // numpad 6 104: "up", // numpad 8 120: "debug" // F9 };
Есть аналогичный словарь для геймпада:
Можно также создать обработчик нажатий на клавиатуру и там смотреть на непосредственно код нажатой клавиши. Полезно, если у движка нет подходящего стандартного маркера. Но это уже для продвинутых пользователейКод:Input.gamepadMapper = { 0: "ok", // A 1: "cancel", // B 2: "shift", // X 3: "menu", // Y 4: "pageup", // LB 5: "pagedown", // RB 12: "up", // D-pad up 13: "down", // D-pad down 14: "left", // D-pad left 15: "right" // D-pad right };Пишите, если нужен гайд по этому.
Коды клавиш легко находятся в интернете. Можно смотреть их, к примеру, тут. Нужны DEC-коды (то есть десятичные).
Ещё важный совет. Не меняйте код движка, не редактируйте стандартные файлы. Мало того, что это запрещено правообладателем, это также неудобно и небезопасно. Что, если вы ошибётесь или захотите откатить изменения? JavaScript позволяет переопределять всё, что удобно. Поэтому для изменения кода движка используйте плагины.
Пишите ваши вопросы в этой теме, если остались.




Пишите, если нужен гайд по этому.
Ответить с цитированием




![[MV][MZ] Управление по WASD](https://rpgmaker.su/images/rpgmakerunion.png)
Социальные закладки